﻿using LxBasic;

namespace LxCore
{
    public class ZoneHead : JsObject, IInitializable
    {
        //local

        //share
        public FvZone Zone;
        protected FvInnFace[] InnFaces;
        protected FvInnCell[] InnCells;
        protected FvBouFace[] BouFaces;
        public double[] InnFaceShare;//1.存储(非正交修正，计算b的时候，O加N减),2.迭代时临时存储
        public double[] BouFaceShare;//2.存储(非正交修正，及边界源项常数部分)
        //prop
        public virtual bool IsInitialized => throw new NotImplementedException();// isInitialized_000 && isInitialized_111;

        public virtual void CheckCreate(FvZone zone)
        {
            this.Zone = zone;
            this.InnFaces = zone.InnFaces;
            this.InnCells = zone.InnCells;
            this.BouFaces = zone.BouFaces;
            this.InnFaceShare = zone.InnCellInnFaceShare;
            this.BouFaceShare = zone.InnCellBouFaceShare;
        }

        public virtual void Initialize()
        {
            throw new NotImplementedException();
        }

        public virtual void Reuse(ZoneHead oldOne)
        {

        }
        public class BoundHead
        {

        }

    }
}
